The field of the invention is digital control systems such as programmable controllers disclosed in U.S. Pat. Nos. 3,942,158 and 3,810,118.
Programmable controllers are typically connected to industrial equipment such as assembly lines and machine tools to sequentially operate the equipment in accordance with a stored control program. In programmable controllers such as those disclosed in the above cited patents, for example, the control program is stored in a memory and includes instructions which are read out in rapid sequence to examine the condition of selected sensing devices on the controlled equipment and instructions which energize or deenergize selected operating devices on the controlled equipment contingent upon the status of one or more of the examined sensing devices.
The processor in a programmable controller is designed to rapidly execute programmable controller type instructions which call for the manipulation of single-bit input data and the control of single-bit output data. The length of the control program, and hence the complexity of the system to be controlled, must be limited to insure that the entire control program can be executed, or scanned, within a set time. Such time limits are required to insure that the programmable controller will provide virtually instantaneous response to any change in the status of sensing devices on the controlled system. Therefore, the speed with which a controller processor can execute programmable controller instructions has a direct bearing on the size of the machine or process which it can effectively control.
Although the vast majority of programmable controllers presently in use are comprised of discrete components, a number of small programmable controllers have been introduced in recent years which employ a microprocessor. Heretofore such microprocessor based programmable controllers have been limited in size by the speed with which the microprocessor can execute programmable controller type expressions, and hence, the speed with which it can scan the control program. To assist the microprocessor in carrying out the numerous single-bit calculations necessary to execute a control program, hardware such as data selectors and addressable latches have been employed to "convert" the word-oriented microprocessor to a single-bit processor. Such hardware eliminates the need for numerous shifting and masking operations on input and output data and hence it shortens the execution time to some extent.
Not only should a programmable controller processor be able to execute Boolean expressions rapidly, but it also should be able to execute programmable controller type instructions. Such instructions have become quite standardized in the industry in terms of the functions they perform. They may be directly associated with elements of a ladder diagram and are, therefore, easily understood by control engineers who use programmable controllers. Program panels such as those disclosed in U.S. Pat. Nos. 3,798,612 and 3,813,649 and in U.S. Pat. No. 4,070,702 have also been developed to assist the user in developing and editing a control program comprised of programmable controller type instructions. Such program panels account to a great extent for the rapidly increasing popularity of programmable controllers and any new controller processor should be compatible with them. In other words, the controller processor should be capable of directly executing programmable controller type instructions.
As indicated above, microprocessors are word oriented calculating devices which have been developed to provide the functions normally associated with a general purpose digital computer. As such they have their own unique instruction set, or machine language, which is designed to efficiently carry out these computer type functions. To develop a control program for prior programmable controllers which employ a microprocessor the user first develops a control program comprised of programmable controller type instructions and then converts, or assembles, that program into the machine language of the particular microprocessor being used in the controller processor. Such assembly requires a separate step in the programming process and requires the use of a separate general purpose digital computer.